home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / cdrom / makecd_demo / install < prev    next >
Text File  |  1996-11-18  |  12KB  |  562 lines

  1. ; $Id$
  2. ; Dies ist das Install-Programm für MakeCD.
  3. ; MakeCD ist aber auch direkt von Diskette lauffähig.
  4. ; $VER: Install-MakeCD 1.0 (9.11.96)
  5.  
  6.  
  7.  
  8. (procedure P_GET_LANG_FROM_ENV
  9.     (
  10.         (if (exists "ENV:Language")
  11.             (if (patmatch (getenv "language") txt_lang_0)
  12.                 0
  13.                 (if (patmatch (getenv "language") txt_lang_1)
  14.                     1
  15.                     1
  16.                 )
  17.             )
  18.             (if (patmatch @language txt_lang_0)
  19.                 0
  20.                 (if (patmatch @language txt_lang_1)
  21.                     1
  22.                     1
  23.                 )
  24.             )
  25.         )
  26.     )
  27. )
  28.  
  29.  
  30.  
  31. (procedure P_SELECT_LANGUAGE
  32.     (
  33.         (set txt_lang_0 "Deutsch")    (set txt_langdir_0 "deutsch")
  34.         (set txt_lang_1 "English")    (set txt_langdir_1 "english")
  35.         (set txt_lang_2 "Français")   (set txt_langdir_2 "français")
  36.         (set txt_lang_3 "Italiano")   (set txt_langdir_3 "italiano")
  37.         (set txt_lang_4 "Nederlands") (set txt_langdir_4 "nederlands")
  38.         (set txt_lang_5 "Norsk")      (set txt_langdir_5 "norsk")
  39.         (set txt_lang_6 "Suomi")      (set txt_langdir_6 "suomi")
  40.         (set txt_lang_7 "Svenska")    (set txt_langdir_7 "svenska")
  41.         (set txt_lang_8 "")           (set txt_langdir_8 "")
  42.         (set txt_lang_9 "")           (set txt_langdir_9 "")
  43.  
  44.         (set numlangs 2)
  45.  
  46.         (if (AND (= 0 origuserlevel) (exists "ENV:Language"))
  47.             (
  48.                 (set langnum P_GET_LANG_FROM_ENV)
  49.             )
  50.             (
  51.                 (user 2)
  52.                 (set langnum
  53.                     (askchoice
  54.                         (prompt "Choose the language to be used in this installer script.")
  55.                         (help "Please select your favourite language.\n\n" "Bitte wählen Sie ihre bevorzugte Sprache.")
  56.                         (choices
  57.                             txt_lang_0
  58.                             txt_lang_1
  59.                         )
  60.                         (default
  61.                             P_GET_LANG_FROM_ENV
  62.                         )
  63.                     )
  64.                 )
  65.                 (user origuserlevel)
  66.             )
  67.         )
  68.  
  69.         (if (= langnum 0) (set langstring txt_lang_0))
  70.         (if (= langnum 1) (set langstring txt_lang_1))
  71.         (if (= langnum 2) (set langstring txt_lang_2))
  72.         (if (= langnum 3) (set langstring txt_lang_3))
  73.         (if (= langnum 4) (set langstring txt_lang_4))
  74.         (if (= langnum 5) (set langstring txt_lang_5))
  75.         (if (= langnum 6) (set langstring txt_lang_6))
  76.         (if (= langnum 7) (set langstring txt_lang_7))
  77.         (if (= langnum 8) (set langstring txt_lang_8))
  78.         (if (= langnum 9) (set langstring txt_lang_9))
  79.  
  80.         (if (not (exists "ENV:Language"))
  81.             (
  82.                 (run ("%s%s" "setenv Language " langstring))
  83.             )
  84.         )
  85.  
  86.  
  87.         ; Set default strings
  88.  
  89.         (set #yes_answer
  90.             ("%s"
  91.                 "Yes"
  92.             )
  93.         )
  94.         (set #no_answer
  95.             ("%s"
  96.                 "No"
  97.             )
  98.         )
  99.         (set #choose_yes_or_no
  100.             ("%s"
  101.                 "Please chose \"Yes\" or \"No\"."
  102.             )
  103.         )
  104.         (set #warning_old_os
  105.             (
  106.                 "%s%s"
  107.                 "Please update the operating system. "
  108.                 "MakeCD requires OS 2.04."
  109.             )
  110.         )
  111.         (set #intro_msg
  112.             ("%s%s%s"
  113.                 "Welcome at the MakeCD installation!\n\n"
  114.                 "Although MakeCD is able to run without further installation, you might want to "
  115.                 "copy it to your hard disk. This script will help you doing this."
  116.             )
  117.         )
  118.         (set #select_dest_dir
  119.             ("%s%s"
  120.                 "Please select the destination directory for MakeCD. "
  121.                 "The \"MakeCD\" directory will be created automatically."
  122.             )
  123.         )
  124.         (set #which_languages_to_install
  125.             ("%s"
  126.                 "Which languages do you want to install?"
  127.             )
  128.         )
  129.         (set #install_developer
  130.             ("%s%s%s%s%s"
  131.                 "Do you want to install developer material? This material "
  132.                 "describes all you have to know about SUSP (System Use "
  133.                 "Sharing Protocol), RRIP (Rock Ridge Interchange Protocol) "
  134.                 "and about the support of Amiga protection bits and file "
  135.                 "comments on CD-ROM."
  136.             )
  137.         )
  138.         (set #cannot_find_lang_docs
  139.             ("%s%s"
  140.                 "Sorry, cannot find any docs for language \"%s\".\n\n"
  141.                 "Installation of the docs of this language skipped."
  142.             )
  143.         )
  144.         (set #cannot_find_lang_catalogs
  145.             ("%s%s"
  146.                 "Sorry, cannot find any catalogs for language \"%s\".\n\n"
  147.                 "Installation of the catalogs of this language skipped."
  148.             )
  149.         )
  150.         (set #copying_files
  151.             ("%s"
  152.                 "Please stand by while copying ..."
  153.             )
  154.         )
  155.         (set #select_drivers
  156.             ("%s"
  157.                 "Please select the drivers to install."
  158.             )
  159.         )
  160.         (set #copy_libs
  161.             ("%s"
  162.                 "MakeCD requires triton.library V6."
  163.             )
  164.         )
  165.  
  166.  
  167.         ; Hier folgen die Strings, die für die deutsche Übersetzung benötigt
  168.         ; werden. Bei Übersetzungen in andere Sprachen einfach den folgenden
  169.         ; Block komplett kopieren und die Texte ändern. Die Steuerzeichen
  170.         ; sollten unverändert bleiben. Wer irgendwo eine Zeile hinzufügen oder
  171.         ; löschen möchte, muß dir Anzahl der "%s" entsprechend anpassen - für
  172.         ; jede Zeile steht ein "%s".
  173.  
  174.         (if (patmatch langstring "Deutsch")
  175.             (
  176.                 (set #yes_answer
  177.                     "Ja"
  178.                 )
  179.                 (set #no_answer
  180.                     "Nein"
  181.                 )
  182.                 (set #choose_yes_or_no
  183.                     ("%s"
  184.                         "Wählen Sie bitte \"Ja\" oder \"Nein\"."
  185.                     )
  186.                 )
  187.                 (set #warning_old_os
  188.                     (
  189.                         "%s%s"
  190.                         "Bitte bringen Sie Ihr Betriebssystem auf den neuesten Stand. "
  191.                         "MakeCD funktioniert erst ab OS 2.04."
  192.                     )
  193.                 )
  194.                 (set #intro_msg
  195.                     ("%s%s%s"
  196.                         "Willkommen zur MakeCD Installation!\n\n"
  197.                         "MakeCD ist zwar auch ohne weitere Installation lauffähig, aber Sie werden es sicherlich "
  198.                         "auch auf Festplatte installieren wollen. Dabei hilft Ihnen dieses Skript."
  199.                     )
  200.                 )
  201.                 (set #select_dest_dir
  202.                     ("%s%s"
  203.                         "Bitte wählen Sie das Verzeichnis, in dem Sie MakeCD installieren möchten. "
  204.                         "Ein Verzeichnis \"MakeCD\" wird automatisch angelegt."
  205.                     )
  206.                 )
  207.                 (set #which_languages_to_install
  208.                     ("%s"
  209.                         "Welche Sprachen möchten Sie installieren?"
  210.                     )
  211.                 )
  212.                 (set #install_developer
  213.                     ("%s%s%s%s%s"
  214.                         "Möchten Sie die Dateien für Entwickeler installieren? Diese "
  215.                         "Dateien beschreiben alles, was Sie über SUSP (System Use "
  216.                         "Sharing Protocol), RRIP (Rock Ridge Interchange Protocol) "
  217.                         "und über die Unterstützung von Amiga Protection Bits and Datei-Kommentaren "
  218.                         "auf CD-ROMs wissen müssen."
  219.                     )
  220.                 )
  221.                 (set #cannot_find_lang_docs
  222.                     ("%s%s"
  223.                         "Die Anleitung für die Sprache \"%s\" kann leider nicht gefunden werden.\n\n"
  224.                         "Die Installation der Anleitung dieser Sprache wurde übersprungen."
  225.                     )
  226.                 )
  227.                 (set #cannot_find_lang_catalogs
  228.                     ("%s%s"
  229.                         "Der Katalog für die Sprache \"%s\" kann leider nicht gefunden werden.\n\n"
  230.                         "Die Installation des Katalogs dieser Sprache wurde übersprungen."
  231.                     )
  232.                 )
  233.                 (set #copying_files
  234.                     "Kopiere ... Bitte etwas Geduld."
  235.                 )
  236.                 (set #select_drivers
  237.                     "Welche Treiber möchten Sie installieren?"
  238.                 )
  239.                 (set #copy_libs
  240.                     "MakeCD benötigt triton.library V6."
  241.                 )
  242.             )
  243.         )
  244.     )
  245. )
  246.  
  247.  
  248.  
  249. (procedure P_SET_GLOBALS
  250.     (
  251.         (set osversion (/ (getversion) 65536))
  252.         (set volname (expandpath (":")))
  253.         (set origuserlevel @user-level)
  254.     )
  255. )
  256.  
  257.  
  258.  
  259. (procedure P_WARN_OLD_OS
  260.     (
  261.         (if (< osversion 37)
  262.             (
  263.                 (user 2)
  264.                 (message
  265.                     #warning_old_os
  266.                 )
  267.                 (user origuserlevel)
  268.             )
  269.         )
  270.     )
  271. )
  272.  
  273.  
  274.  
  275. (procedure P_SELECT_DEST
  276.     (
  277.         (set destdir
  278.             (tackon
  279.                 (askdir
  280.                     (prompt #select_dest_dir)
  281.                     (help @askdir-help)
  282.                     (default @default-dest)
  283.                 )
  284.                 "MakeCD"
  285.             )
  286.         )
  287.     )
  288. )
  289.  
  290.  
  291.  
  292. (procedure P_SELECT_INSTALL_LANG
  293.     (
  294.         (set i 0)
  295.         (set langbits 0)
  296.         (while (< i numlangs)
  297.             (
  298.                 (set thislangdir (select i txt_langdir_0 txt_langdir_1 txt_langdir_2 txt_langdir_3 txt_langdir_4 txt_langdir_5 txt_langdir_6 txt_langdir_7 txt_langdir_8 txt_langdir_9))
  299.                 (set langbits
  300.                     (if
  301.                         (OR
  302.                             (OR
  303.                                 (= 1 (exists ("doc_%s.lha" thislangdir)))
  304.                                 (= 2 (exists (tackon "Catalogs" thislangdir)))
  305.                             )
  306.                             (= 2 (exists thislangdir))
  307.                         )
  308.                         ( ; then
  309.                             (+ langbits (shiftleft 1 i))
  310.                         )
  311.                         ( ; else
  312.                             (+ langbits 0)
  313.                         )
  314.                     )
  315.                 )
  316.                 (set i (+ i 1))
  317.             )
  318.         )
  319.  
  320.  
  321.         (set langbits
  322.             (askoptions
  323.                 (prompt #which_languages_to_install)
  324.                 (help @askoptions-help)
  325.                 (choices txt_lang_0 txt_lang_1)
  326.                 (default langbits)
  327.             )
  328.         )
  329.     )
  330. )
  331.  
  332.  
  333.  
  334. (procedure P_ASK_INSTALL_DEVELOPER
  335.     (
  336.         (set installdev
  337.             (askbool
  338.                 (prompt #install_developer)
  339.                 (choices #yes_answer #no_answer)
  340.                 (help #choose_yes_or_no)
  341.                 (default 0)
  342.             )
  343.         )
  344.     )
  345. )
  346.  
  347.  
  348.  
  349. (procedure P_COPY_LANGUAGES
  350.     (
  351.         (set i 0)
  352.         (while (< i numlangs)
  353.             (
  354.                 (set thislang (select i txt_lang_0 txt_lang_1 txt_lang_2 txt_lang_3 txt_lang_4 txt_lang_5 txt_lang_6 txt_lang_7 txt_lang_8 txt_lang_9))
  355.                 (set thislangdir (select i txt_langdir_0 txt_langdir_1 txt_langdir_2 txt_langdir_3 txt_langdir_4 txt_langdir_5 txt_langdir_6 txt_langdir_7 txt_langdir_8 txt_langdir_9))
  356.                 (if (IN langbits i)
  357.                     (
  358.                         (if (= 2 (exists thislangdir))
  359.                             (
  360.                                 (copyfiles
  361.                                     (source "")
  362.                                     (dest destdir)
  363.                                     (pattern ("%s#?" thislangdir))
  364.                                     (optional force)
  365.                                 )
  366.                             )
  367.                             (
  368.                                 (if (= 1 (exists ("doc_%s.lha" thislangdir)))
  369.                                     (
  370.                                         (if (= 1 (exists "lhex"))
  371.                                             (
  372.                                                 (run ("lhex -afFqw=%s e doc_%s.lha" destdir thislangdir))
  373.                                             )
  374.                                             (
  375.                                                 (message ("LhA -a -m -M x doc_%s.lha %s/" thislangdir destdir))
  376.                                                 (run ("LhA -a -m -M x doc_%s.lha %s/" thislangdir destdir))
  377.                                             )
  378.                                         )
  379.                                     )
  380.                                     (
  381.                                         (message (#cannot_find_lang_docs thislang))
  382.                                     )
  383.                                 )
  384.                             )
  385.                         )
  386.                         (if (= 2 (exists (tackon "Catalogs" thislangdir)))
  387.                             (
  388.                                 (copyfiles
  389.                                     (source "Catalogs")
  390.                                     (dest (tackon destdir "Catalogs"))
  391.                                     (pattern thislangdir)
  392.                                     (optional force)
  393.                                 )
  394.                                 (copyfiles
  395.                                     (source "Catalogs")
  396.                                     (dest (tackon destdir "Catalogs"))
  397.                                     (pattern ("%s.info" thislangdir))
  398.                                     (optional force)
  399.                                 )
  400.                             )
  401.                             ( ; else
  402.                                 (if (NOT (patmatch "english" thislangdir))    ; nicht English
  403.                                     (
  404.                                         (message (#cannot_find_lang_catalogs thislang))
  405.                                     )
  406.                                 )
  407.                             )
  408.                         )
  409.                     )
  410.                 )
  411.                 (set i (+ i 1))
  412.             )
  413.         )
  414.     )
  415. )
  416.  
  417.  
  418.  
  419. (procedure P_CREATE_DIRS
  420.     (
  421.         (if (NOT (exists destdir))
  422.             (
  423.                 (makedir
  424.                     destdir
  425.                     (infos)
  426.                 )
  427.             )
  428.         )
  429.  
  430.         (if (NOT (exists (tackon destdir "Modules")))
  431.             (
  432.                 (makedir
  433.                     (tackon
  434.                         destdir
  435.                         "Modules"
  436.                     )
  437.                 )
  438.             )
  439.         )
  440.  
  441.         (if (NOT (exists (tackon destdir "Modules/SCSIDrivers")))
  442.             (
  443.                 (makedir
  444.                     (tackon
  445.                         destdir
  446.                         "Modules/SCSIDrivers"
  447.                     )
  448.                 )
  449.             )
  450.         )
  451.  
  452.         (if (NOT (exists (tackon destdir "Catalogs")))
  453.             (
  454.                 (makedir
  455.                     (tackon
  456.                         destdir
  457.                         "Catalogs"
  458.                     )
  459.                 )
  460.             )
  461.         )
  462.     )
  463. )
  464.  
  465.  
  466.  
  467. (procedure P_COPY_FILES
  468.     (
  469.         (copyfiles
  470.             (prompt #copying_files)
  471.             (choices "MakeCD" "MakeCD.info" "ReadMe" "ReadMe.info" "Modules.info" "Catalogs.info")
  472.             (help @copyfiles-help)
  473.             (source "")
  474.             (dest destdir)
  475.             (optional force)
  476.         )
  477.  
  478.         (copyfiles
  479.             (prompt #copying_files)
  480.             (help @copyfiles-help)
  481.             (choices "makecdromfs.module" "SCSISupport.module" "SCSIDrivers.info")
  482.             (source "Modules")
  483.             (dest (tackon destdir "Modules"))
  484.             (optional force)
  485.         )
  486.  
  487.         (if (= 1 installdev)
  488.             (
  489.                 (copyfiles
  490.                     (prompt #copying_files)
  491.                     (help @copyfiles-help)
  492.                     (pattern "Developer#?")
  493.                     (source "")
  494.                     (dest destdir)
  495.                     (optional force)
  496.                 )
  497.             )
  498.         )
  499.     )
  500. )
  501.  
  502.  
  503.  
  504. (procedure P_COPY_DRIVERS
  505.     (
  506.         (copyfiles
  507.             (prompt #select_drivers)
  508.             (help @copyfiles-help)
  509.             (pattern "#?")
  510.             (source "Modules/SCSIDrivers")
  511.             (dest (tackon destdir "Modules/SCSIDrivers"))
  512.             (confirm)
  513.             (optional force)
  514.         )
  515.     )
  516. )
  517.  
  518.  
  519.  
  520. (procedure P_COPY_LIBS
  521.     (
  522.         (copylib 
  523.             (prompt #copy_libs)
  524.             (help #copy_libs)
  525.             (confirm)
  526.             (source "triton.library")
  527.             (dest "LIBS:")
  528.         )
  529.     )
  530. )
  531.  
  532.  
  533. (complete 5)
  534. (P_SET_GLOBALS)
  535. (complete 10)
  536. (P_SELECT_LANGUAGE)
  537. (complete 15)
  538. (P_WARN_OLD_OS)
  539. (complete 20)
  540. (message #intro_msg)
  541. (complete 25)
  542. (P_SELECT_DEST)
  543. (complete 30)
  544. (P_SELECT_INSTALL_LANG)
  545. (complete 35)
  546. (P_ASK_INSTALL_DEVELOPER)
  547. (complete 40)
  548. (P_CREATE_DIRS)
  549. (complete 45)
  550. (P_COPY_LANGUAGES)
  551. (complete 60)
  552. (P_COPY_FILES)
  553. (complete 80)
  554. (P_COPY_DRIVERS)
  555. (complete 90)
  556. (P_COPY_LIBS)
  557. (complete 99)
  558.  
  559. (set @default-dest destdir)
  560.  
  561. (complete 100)
  562.